<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    .classA {
      font-size: 20px;
    }
    .classB {
      background-color: pink;
    }
    .classC {
      color: aqua;
    }
  </style>
</head>
<body>
  <!-- 
    React的动态class    只支持字符串值写法  / 不能同时有静态的和动态的
      <p class={hasA ? 'classA' : ''}>情况1</p>
      <p class={hasA ? 'classC classA' : 'classC'}>情况1</p>
   -->
  <div id="test">
    <!-- 情况1: 类名是确定的且只有一个, 只是不确定有没有 => 三元写法 -->
    <p :class="hasA ? 'classA' : ''">情况1</p>
    <!-- 情况2: 类名是确定的且是多个, 只是不确定有没有 => 对象写法 -->
    <p :class="{classA: hasA, classB: hasB}">情况2</p>
    <!-- 情况3: 类名不确定, 只有一个 => 字符串变量 -->
    <p :class="myClass">情况3</p>
    <!-- 情况4: 类名不确定, 有多个 => 数组变量-->
    <p :class="myClass2">情况4</p>

    <!-- 标签有一个固定/静态类名, 还有动态类名  => 合并它们 -->
    <p class="classC" :class="myClass">aaaa</p>
    
  </div>

  <script src="../js/vue.js"></script>
  <script>
    const vm = new Vue({
      el: "#test",
      data: {
        hasA: true,
        hasB: false,
        myClass: 'classA',
        myClass2: ['classA', 'classB']
      }
    })

    setTimeout(() => {
      vm.hasA = !vm.hasA
      vm.hasB = !vm.hasB
      vm.myClass = 'classB'
      vm.myClass2 = ['classB', 'classC']
    }, 2000);
  </script>
</body>
</html>